Data processing systems typically require a large amount of data storage. These systems often comprise multiple host processors concurrently storing data to multiple storage volumes through multiple drive units. The data storage within these systems often includes removable media, such as magnetic tape or optical disk, since it is useful for data that must be stored for long periods of time, data that is infrequently accessed, or data that is backed-up or migrated from more accessible storage media, such as electronic memory or DASD. Removable media also has an economic advantage in that it provides a lower cost per unit of storage.
Virtual data storage systems, more commonly implemented as virtual tape storage (VTS) systems, have been developed to increase the efficiency and economics of tape storage systems. Tape storage systems which attach to multiple host processing systems typically require many tape drives to accommodate concurrent demands made by separate host processors for accessing separate tape storage volumes. Accordingly, the tape storage system may utilize the tape drives in bursts of high activity separated by intervals of little activity. VTS systems overcome this problem by providing interfaces to the host processors for addressing many more tape drives than actually exist within the storage subsystem. The attached host processors transfer data files to the VTS system as tape volumes, or logical volumes. The VTS system first stores the logical volumes as files in a first level (cache) storage, such as a direct access storage device (hereinafter “DASD” or “disk”) or an electronic memory, and subsequently writes the data files from the cache storage to the tape storage subsystem. While the logical volume is stored in the cache storage, it appears to the host processor that the logical volume has been stored as a tape volume in the VTS system. The VTS system manages the migration of the data file to a tape storage volume and selects which physical tape drive is used to store the data.
The VTS system uses the cache storage to buffer data transfers between the tape storage and the attached host processors. When the host processors write data to the VTS system, the data is stored in the cache storage. Host mount requests also involve the cache storage. If the requested data file is contained within the cache storage, a “cache hit” allows the VTS system to immediately make the data available to the host processor. If the requested file has been migrated to a tape volume, the VTS system must recall the file from the tape volume, copy the file into the cache storage, and then make the data available to the requesting host processor from the cache storage. The VTS system also uses the cache storage to provide quick responses to the attached host processors. Host write operations are considered complete once the logical volume has been stored as a data file in the cache storage, even though the data file hasn't yet been “hardened” to the tape. Thus, the VTS system must manage the cache storage and the tape storage volumes such that the more frequently requested data files, or logical volumes, reside in the cache storage.
The VTS must also manage the capacity of the cache storage. Write operations from the attached host processors fill the cache storage with data files. Additionally, host read operations can also fill the cache storage with data files. If the read request results in a cache miss, because the data file was previously migrated to a tape storage volume, the requested data file must be recalled from the tape storage volume to the cache storage and then transferred to the host processor. Higher performance, efficient VTS systems also premigrate data files from the cache storage to the tape storage volumes. That is, the VTS system copies the data file to a selected tape storage volume, but does not immediately remove the file from the cache storage. In this scheme, the VTS system has transferred the data file as a logical volume to the tape storage volume but has kept a copy in the cache storage, providing faster host access to the data file. Thus, premigrating data files provides no relief to the storage capacity constraints placed on the cache storage. The VTS system must migrate infrequently accessed data files from the cache storage to provide available space for the incoming data files. Typically, the cache storage fills at a faster rate than it is emptied. Thus, some means must be provided to balance the incoming data rate with the outgoing data rate and maintain sufficient free space to prevent the cache storage from quickly overrunning, or overflowing, its capacity. FIG. 1 represents a prior art cache in which a minimum amount of free space is maintained to help balance the inflow and outflow of data.